Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) are two types of communications protocols at the transmission layer. TCP provides connection-oriented and reliable end-to-end data transmission services. Therefore, a sending end will need to first establish a connection with a receiving end using control information before transmission of data. This is known as a handshaking operation. The transmission of data to the receiving end begins only after the connection is established. Moreover, after completing transmission of data, the sending end will terminate the connection with the receiving end.
On the other hand, UDP provides non-connection-oriented and unreliable data transmission services. Therefore, when a sending end transmits data to a receiving end according to the UDP, complicated procedures like handshaking, recognition, re-transmission in the TCP will not be employed. Thus, in the same network environment, UDP is a form of data transmission that is faster and more efficient than TCP, and the bandwidth used thereby is less than that used by TCP.
However, on the contrary, UDP has a higher data transmission error rate than TCP.
Therefore, a sending end can adopt UDP or TCP to transmit data to the receiving end depending on user requirements. That is, when the accuracy of the data amount is not very important, use of UDP can be considered. On the contrary, if the requirement for the accuracy of the data is stringent, TCP is a better choice. However, if a sending end needs to transmit a large amount of data to a plurality of receiving ends, TCP, which requires more bandwidth, is unable to achieve the function of real-time transmission.
Currently, users in different places often use video conference to conduct meetings. In general, during a video conference, a video camera at each place will capture the image data locally, and the captured image will be transmitted to the other receiving ends at different places over a network. When a sending end transmits a huge amount of video data to a plurality of receiving ends using TCP, the function of real-time imaging cannot be achieved due to insufficient bandwidth. Therefore, generally, in a situation where it is necessary to transmit images or screen frames successively, e.g., in a video conference, E-learning, or remote control, transmission of data between a sending end and at least one receiving end is through UDP. However, the use of UDP to transmit an entire image at one time may also result in serious packet loss problems.
The present solution is to divide an image to be transmitted into a plurality of blocks at the sending end, and transmit the blocks one by one to each receiving end. In addition, since the contents of two consecutive images may not vary significantly, the blocks at the same position in the two consecutive images may be identical. Therefore, when transmitting the second image, it is only necessary to transmit the blocks whose data have changed. There is no need to transmit every block. Thus, the amount of data that needs to be transmitted can be reduced considerably. However, since UDP is an unreliable form of transmission, it cannot be guaranteed that every updated block can smoothly reach each receiving end. Therefore, in case of a transmission error, the images displayed at the receiving ends will continue to show the old blocks, and cannot successfully show the correct blocks.
Thus, while conventional data transmission using TCP can achieve a better accuracy rate, it cannot achieve the object of real-time transmission. However, use of UDP can result in frequent occurrence of transmission errors since UDP is an unreliable form of transmission.